FIG. 1 depicts a schematic diagram of an exemplary wireless local-area network (LAN) 100 in the prior art comprising access point 101 and stations 102-1 through 102-N, wherein N is a positive integer, interconnected as shown. Each station 102-i, wherein i is a member of the set {1, 2, . . . N}, is a device such as a notebook computer, personal digital assistant (PDA), tablet PC, etc. that wirelessly transmits signals to and receives signals from other stations in local-area network 100 via access point 101.
In order for access point 101 and stations 102-1 through 102-N to communicate, they must agree as to the meaning of the signals that they transmit. In particular, they must agree on: who talks when, what constitutes a “0” and a “1,” how an error is detected and corrected, etc. In the terminology of telecommunications, these agreements are called protocols, and a particular set of protocols is known as a protocol stack.
Stations and access points typically employ software, hardware, or a combination of software and hardware to implement a particular protocol stack. FIG. 2 depicts a conceptual diagram of two software-based protocol stacks 201 and 202-i that are implemented by access point 101 and station 102-i, respectively, in accordance with the prior art, wherein i is a member of set {1, 2, . . . N}.
Telecommunications engineers design protocols to provide a variety of services, such as error control (i.e., detecting and/or correcting bit errors in transmitted data), flow control (i.e., compensating for differences between the rate at which data is transmitted to a device and the rate at which the receiving device processes the data), and medium access control (i.e., ensuring that only one device at a time transmits into a shared communications channel). Because telecommunications systems typically involve a plurality of communicating devices that operate independently, protocols must be able to provide desired behavior (i.e., the protocol services must be correct) for different, and often unpredictable, timing relationships between the devices.
Telecommunications engineers formally describe a protocol via a protocol specification. A protocol specification comprises: (i) a service to be provided; (ii) one or more assumptions about the environment in which the protocol executes; (iii) a vocabulary of messages used to implement the protocol; (iv) an encoding of each message in the vocabulary; and (v) a set of procedure rules guarding the consistency of message exchanges. [Design and Validation of Computer Protocols, G. J. Holzmann, Prentice Hall, 1991]